package com.jw.qme.core.handler;

import cn.dev33.satoken.interceptor.SaInterceptor;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import javax.annotation.PostConstruct;

/**
 * ClassName: com.jw.qme.core.handler
 * Datetime: 2025/4/6 下午7:39
 * Description:
 *
 * @author 汪佳泉
 * @version 1.0
 * @since 1.0
 */

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 注册 Sa-Token 拦截器
        registry.addInterceptor(new SaInterceptor(handler -> {
            // 校验是否登录
            StpUtil.checkLogin();
        })).excludePathPatterns("/user/**","/user/public/**"); // 放行 /user 下的所有路径
    }

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") // 对所有路径生效
                .allowedOrigins("*") // 允许所有域名
                .allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的 HTTP 方法
                .allowedHeaders("*") // 允许的所有头
                .allowCredentials(false) // 不允许发送凭据
                .maxAge(3600); // 预检请求的缓存时间（秒）
    }

}